M291 S4 K{"Always Retract", "Keep Filament Loaded", "Retract Once"} R"Retract Filament from Tool After Print" P"Filament will be retracted from the nozzle after print. This allows easy filament removal. Retraction only from active tool." F1

if input == 0
    echo >"0:/sys/user/actions/RetractFinishBehavior.g" "; Filament Retraction After Print Mode - Always Retract Extended"
    echo >>"0:/sys/user/actions/RetractFinishBehavior.g" "; Extended retract on both tools if they were used"
    echo >>"0:/sys/user/actions/RetractFinishBehavior.g" "if state.currentTool >= 0"
    echo >>"0:/sys/user/actions/RetractFinishBehavior.g" "  var currentTemp = heat.heaters[state.currentTool].active"
    echo >>"0:/sys/user/actions/RetractFinishBehavior.g" "  if var.currentTemp > 50"
    echo >>"0:/sys/user/actions/RetractFinishBehavior.g" "    var retractTemp = var.currentTemp - 50"
    echo >>"0:/sys/user/actions/RetractFinishBehavior.g" "    M568 P{state.currentTool} S{var.retractTemp} R{var.retractTemp}"
    echo >>"0:/sys/user/actions/RetractFinishBehavior.g" "    M116 P{state.currentTool} S5"
    echo >>"0:/sys/user/actions/RetractFinishBehavior.g" "    M83"
    echo >>"0:/sys/user/actions/RetractFinishBehavior.g" "    G1 E-150 F180  ; Retract 150mm at 3mm/s"
    echo >>"0:/sys/user/actions/RetractFinishBehavior.g" "    M400"
    echo "Extended filament retraction enabled - will retract 150mm after each print"

elif input == 1
    echo >"0:/sys/user/actions/RetractFinishBehavior.g" "; Filament Retraction After Print Mode - Skip Extended Retract"
    echo >>"0:/sys/user/actions/RetractFinishBehavior.g" "; No additional retraction - basic 20mm retract already done in end.g"
    echo "Extended retraction disabled - only basic 20mm retract will be performed"

elif input == 2
    echo >"0:/sys/user/actions/RetractFinishBehavior.g" "; Filament Retraction After Print Mode - Retract Extended Only Once"
    echo >>"0:/sys/user/actions/RetractFinishBehavior.g" "if state.currentTool >= 0"
    echo >>"0:/sys/user/actions/RetractFinishBehavior.g" "  var currentTemp = heat.heaters[state.currentTool].active"

    echo >>"0:/sys/user/actions/RetractFinishBehavior.g" "    var retractTemp = var.currentTemp - 50"
    echo >>"0:/sys/user/actions/RetractFinishBehavior.g" "    M568 P{state.currentTool} S{var.retractTemp} R{var.retractTemp}"
    echo >>"0:/sys/user/actions/RetractFinishBehavior.g" "    M116 P{state.currentTool} S5"
    echo >>"0:/sys/user/actions/RetractFinishBehavior.g" "    M83"
    echo >>"0:/sys/user/actions/RetractFinishBehavior.g" "    G1 E-150 F180  ; Retract 150mm at 3mm/s"
    echo >>"0:/sys/user/actions/RetractFinishBehavior.g" "    M400"
    echo >>"0:/sys/user/actions/RetractFinishBehavior.g" "; Reset to skip mode after this print"
    echo >>"0:/sys/user/actions/RetractFinishBehavior.g" "echo >""0:/sys/user/actions/RetractFinishBehavior.g"" ""; Filament Retraction After Print Mode - Skip Extended Retract"""
    echo >>"0:/sys/user/actions/RetractFinishBehavior.g" "echo >>""0:/sys/user/actions/RetractFinishBehavior.g"" ""; No additional retraction - basic 20mm retract already done in end.g"""
    echo "Extended retraction will be performed only after the next print"